在MFC中,设置ComboBox控件中下拉列表的高度

在MFC中,如何设置组合框ComboBox控件下拉列表的高度

方法一:(只适用于静态创建)

如果是从MFC资源框中拖放下拉控件,那么可以单击下拉框的向下箭头,调整弹出的虚线框,就可以实现了。

方法二:(只适用于动态创建)

在动态创建下拉控件的Create函数中,RECT变量的高度Height设置大些,下拉列表的高度 = Height - ComboBox控件的高度

方法三:(适用于动态创建、静态创建)

捕获下拉控件的CBN_DROPDOWN消息,然后通过MoveWindow或SetWindowPos函数,可以实时修改下拉列表的高度

说明:

用系统API MoveWindow、SetWindowPos,这个函数对ComboBox改变大小操作时改变的不是编辑框大小,而是下拉列表的大小

方法三对应的实例如下:

void CA13Box::OnDropdown()

{

//CA13Box为CComboBox的子类

//设置下拉框的高度

CRect rc;

//如果是在主对话框中,可以使用 GetDlgItem(IDC_COMBO)->GetClientRect(&rc); 获取控件的大小

GetClientRect(&rc);

//SetWindowPos函数里面,第五个参数中的100,就表示下拉列表显示的高度

SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height()+100,

SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);

}

本页共25段,986个字符,1615 Byte(字节)